home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / qbprog.EXE / BLASTER.ASM < prev    next >
Assembly Source File  |  1995-09-27  |  5KB  |  310 lines

  1. jumps
  2. locals @@
  3. QB7 equ  
  4. .model medium,basic
  5.         extrn   STRINGADDRESS:far
  6. .code
  7.  
  8. SetDta  proc    basic   yenidta:word
  9.         push    yenidta
  10.         call    stringaddress
  11.         push    ds
  12.         mov     ds,dx
  13.         mov     dx,ax
  14.         mov     ah,1ah
  15.         int     21h
  16.         pop     ds
  17.         ret
  18. SetDta  endp
  19.  
  20. GetDta  proc basic
  21.         push    es bx
  22.         mov     ah,2fh
  23.         int     21h
  24.         mov     ax,bx
  25.         mov     dx,es
  26.         pop     bx es
  27.         ret
  28. GetDta  endp
  29.  
  30.  
  31. ;DECLARE FUNCTION FindFirst%(ara$,dta$,BYVAL fattr%) 
  32. public FindFirst
  33. FindFirst proc basic aranan:word,yenidta:word,fattr:word 
  34.         push    bx
  35.         call    far ptr GetDta
  36.         push    ax dx
  37.         call    SetDta Basic, yenidta
  38.         push    aranan
  39.         call    stringaddress
  40.         push    ds
  41.         mov     ds,dx
  42.         mov     dx,ax
  43.         mov     ah,4eh
  44.         mov     cx,fattr
  45.         int     21h
  46.         pop     ds
  47.         jb      @@DosyaBitti
  48.         mov     ax,-1
  49.         jmp     @@DosyaBulundu
  50. @@DosyaBitti:
  51.         mov     ax,0
  52. @@DosyaBulundu:                         
  53.         pop     bx dx    
  54.         push    ax
  55.         push    ds        
  56.         mov     ds,bx
  57.         mov     ah,1ah
  58.         int     21h
  59.         pop     ds
  60.         pop     ax
  61.         pop     bx
  62.         ret
  63. FindFirst endp
  64.  
  65.  
  66. ;DECLARE SUB FindNext%(dta$)
  67. public FindNext
  68. FindNext proc basic yenidta:word
  69.         push    ds
  70.         call    far ptr GetDta
  71.         push    ax dx
  72.         call    SetDta Basic, yenidta
  73.         mov     ah,4fh
  74.         int     21h
  75.         jb      @@DosyaBitti
  76.         mov     ax,-1
  77.         jmp     @@DosyaBulundu
  78. @@DosyaBitti:
  79.         mov     ax,0
  80. @@DosyaBulundu:                         
  81.         pop     ds dx     
  82.         push    ax
  83.         mov     ah,1ah
  84.         int     21h
  85.         pop     ax
  86.         pop     ds
  87.         ret
  88. FindNext endp
  89.  
  90. public Bekleme
  91. Bekleme proc far
  92.    push ax bx cx ds es si
  93.    xor ax,ax
  94.    mov ds,ax
  95.    mov bx,ax
  96.    mov ax,0b900h
  97.    mov es,ax
  98.    mov ax,ds:[1132]
  99. tickbas:
  100.    cmp ax,ds:[1132]
  101.    jz tickbas
  102.    mov si,0
  103.    mov ax,ds:[1132]
  104. Toplama:
  105.    inc si
  106.    mov es:[bx],si
  107.    cmp si,65000
  108.    jnz Devamet
  109.    mov si,es:[bx+2]
  110.    inc si
  111.    mov es:[bx+2],si
  112.    mov si,0
  113. Devamet:
  114.    cmp ax,ds:[1132]
  115.    jz Toplama
  116.    pop si es ds cx bx ax
  117. bekleme endp
  118.  
  119. public SBlaster
  120. SBlaster proc far
  121. push bp
  122. mov bp, sp
  123. push ax bx cx dx ds es si di
  124.  
  125. mov ax,0b900h
  126. mov ds,ax
  127. mov dx,30
  128. xor ax,ax
  129. mov ax,3d00h
  130. int 21h
  131. jb hata
  132. mov ds:[6],ax
  133.  
  134. Dongu:
  135. mov bx,ds:[6]
  136. mov si,ds:[8]
  137. cmp si,ds:[10]
  138. jz @@SON
  139. mov cx,ds:[si]
  140. mov dx,ds:[si+2]
  141. mov ax,4200h
  142. push ds
  143. int 21h
  144. pop ds
  145. mov dx,ds:[si+6]         
  146. mov ds:[14],dx
  147. mov dx,ds:[si+4]
  148. mov ds:[12],dx
  149. add si,8
  150. mov ds:[8],si
  151.  
  152. push ds
  153. mov cx,ds:[12]
  154. mov dx,ds:[2]
  155. mov ax,ds:[0]
  156. mov ds,ax
  157. mov ah,3fh
  158. int 21h
  159. call dinle
  160. pop ds
  161. jmp Dongu
  162.  
  163. @@SON:
  164. mov ah,3eh
  165. int 21h
  166. hata:
  167. pop  di si es ds dx cx bx ax
  168. pop bp
  169. retf     
  170. Sblaster Endp
  171.  
  172. dinle proc    near
  173. mov si,dx
  174. mov di,si
  175. add di,cx
  176. mov ax,0b900h
  177. mov es,ax
  178. mov dx,es:[4]
  179. mov cx,es:[14]
  180. Musaitmi:
  181. in al,60h
  182. cmp al,1
  183. jz son2
  184. in al,dx
  185. and al,80h
  186. jne Musaitmi
  187.  
  188. push cx
  189. xor ax,ax
  190. @@bekle:
  191. inc ax
  192. cmp ax,cx
  193. jnz @@bekle
  194. pop cx
  195.  
  196. mov al,10h
  197. out dx,al
  198. BeniBekle:
  199. in al,dx
  200. and al,80h
  201. jne BeniBekle
  202. mov al,ds:[si]
  203. out dx,al
  204. inc si
  205. cmp si,di
  206. jnz Musaitmi
  207. ret
  208. son2:
  209. mov ax,0b900h
  210. mov ds,ax
  211. mov si,ds:[10]
  212. mov ds:[8],si
  213. ret
  214. dinle endp
  215.  
  216. public Kaydet 
  217. Kaydet proc far
  218. push bp
  219. mov bp, sp
  220. push ax bx cx dx ds di si es
  221.  
  222. mov ax,0b900h
  223. mov ds,ax
  224. mov ax,ds:[4]  
  225. mov es,ax
  226.  
  227. mov dx,10
  228.  
  229. mov ah,3ch
  230. mov cx,0
  231. INT 21H
  232. JB DosyaAcmaHata
  233.  
  234. mov bx,ax        
  235. mov cx,32        
  236. mov ah,40h
  237. INT 21h
  238.  
  239.  
  240. BuyukDongu:
  241. mov si,ds:[6]
  242. mov di,si
  243. add di,54000
  244.  
  245. KucukDongu:
  246. mov dx,ds:[2]  
  247. add dx,0eh
  248. in al,dx
  249. mov ah,al
  250.  
  251. sub dx,2
  252. mov al,20h
  253. out dx,al
  254.  
  255. mov cx,ds:[0]
  256. xor ax,ax
  257. Frekans:
  258. inc ax
  259. cmp ax,cx
  260. jnz Frekans
  261.  
  262. MinikDongu:
  263. in al,60h
  264. cmp al,1
  265. jz @@SON
  266. in al,dx
  267. and al,80h
  268. jne MinikDongu
  269.  
  270. add dx,2
  271. VeriGeldimi:
  272. in al,dx
  273. cmp al,ah
  274. jz VeriGeldimi
  275.  
  276. sub dx,4
  277. in al,dx
  278.  
  279. mov es:[si],al
  280. inc si
  281. cmp si,di
  282. JNZ KucukDongu
  283. Call Yaz
  284. JMP BuyukDongu
  285.  
  286. @@SON:
  287. Call Yaz
  288. mov ah,3eh
  289. INT 21h
  290.  
  291. DosyaAcmaHata:
  292. pop  es si di ds dx cx bx ax
  293. pop bp
  294. retf     
  295. Kaydet Endp
  296.  
  297. Yaz Proc near
  298. mov cx,si
  299. mov dx,ds:[6]
  300. sub cx,dx
  301. push ds
  302. push es
  303. pop ds
  304. mov ah,40h
  305. INT 21h
  306. pop ds
  307. Ret
  308. Yaz Endp
  309. End
  310.